Skip to content

feat(settings): reorganize settings and add chat block visibility - #614

Merged
shantur merged 8 commits into
NeuralNomadsAI:devfrom
pascalandr:fix/settings-ui-repartition
Jul 26, 2026
Merged

feat(settings): reorganize settings and add chat block visibility#614
shantur merged 8 commits into
NeuralNomadsAI:devfrom
pascalandr:fix/settings-ui-repartition

Conversation

@pascalandr

@pascalandr pascalandr commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • reorganize Settings into focused General, Chat, Notifications, Speech, Remote Access, OpenCode, Providers, SideCars, Config files, Advanced, and Info sections
  • add independent expanded, collapsed, and hidden controls for Thinking, Tool output, Diagnostics, Tool inputs, and Token usage
  • embed the shared Provider manager directly in Settings while retaining the model-selector dialog entry point
  • move environment, session cleanup, sub-agent idle markers, and Tauri transport controls into Advanced

Reliability

  • scope provider loading and authentication operations to the current ready instance
  • clean up OAuth callbacks and popups when the instance or view changes
  • preserve failed disconnect state and prevent conflicting provider operations
  • improve focus management and live status/error announcements

Validation

  • npm run typecheck
  • npm run build:ui
  • 144 runnable UI tests from the settings review cycle
  • git diff --check
  • independent settings and accessibility gatekeepers: SHIP

Closes #609

Replace the broad settings groups with General, Chat, Notifications, Voice, Connections, Runtime, Advanced, and About so preferences are easier to find. Keep general interaction controls in General, speech input in Voice, and desktop transport configuration in Advanced.

Reuse shared behavior rows, locale selection, and remote-server workflows while preserving existing preference keys and dirty-state guards. Provider management now identifies the exact ready instance, and remote-server removal controls expose server-specific accessible names.

Validated with the UI typecheck, production UI build, diff checks, final review, and a Tauri release build without bundling.
Let the four chat presets control thinking visibility, timeline tool calls, diagnostics expansion, tool-input visibility, and usage metrics alongside the existing tool expansion defaults. Balanced retains the current default behavior while Minimal, Detailed, and Everything provide progressively richer transcript detail.

Move diff layout and long-reply follow behavior to General, remove the redundant outer Chat card, and localize the visible preset heading and description.

Validated with the UI typecheck, production UI build, diff checks, focused review, and a Tauri release build without bundling.
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29740773057

Artifacts expire in 7 days.
Artifacts:

  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-macos
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-macos
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-windows
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-macos-arm64
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-linux
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-linux
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-windows

1 similar comment
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29740773057

Artifacts expire in 7 days.
Artifacts:

  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-macos
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-macos
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-windows
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-macos-arm64
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-linux
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-linux
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-windows

@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29763710513

Artifacts expire in 7 days.
Artifacts:

  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-macos
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-windows
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-macos-arm64
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-tauri-linux
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-macos
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-linux
  • pr-614-0b0b4e68e3eb8670c66e3f1d772c1da7ba2d7be5-electron-windows

Return independent controls for thinking visibility, timeline tools, diagnostics expansion, tool input visibility, and usage metrics while keeping the broader transcript presets as convenient defaults. Custom combinations remain available and continue to mark the active preset as custom.

Restore the Chat section card used by the other settings groups and remove only the redundant expansion-table frame. Validate with the workspace typecheck, UI production build, 144 runnable UI tests, gatekeeper review, and a Tauri release build launched on Windows.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper review after settings restoration: zero findings.

Verified that the five independent Chat detail controls are rendered again, broad presets remain available, custom combinations remain supported, the outer section card is restored, and only the redundant expansion-table frame is removed. Workspace typecheck, UI build, 144 runnable UI tests, and the Windows Tauri release build pass. Manual visual confirmation in the launched Tauri executable remains pending.

Consolidate chat transcript controls into one tri-state visibility list for thinking, tool output, diagnostics, tool inputs, and token metrics. Move timeline tool entries into General settings and preserve preset-aware migration behavior.

Implement true hidden tool rendering while keeping active permission and question requests visible. Add a compact token summary that can expand to reasoning and cache details, with localized accessible labels.

Validated with workspace typechecks, 144 UI behavior tests, the server config schema test, UI production builds, and a Tauri release build. The existing Windows-only git-worktrees fixture failure remains unrelated.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 1: 4 deterministic findings identified and fixed (preset migration, hidden-tool message actions, token-metric accessibility, and reused collapsed state).

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 3: 2 deterministic findings identified and fixed (preset-aware command state and localized tri-state command descriptions).

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 2: 2 deterministic findings identified and fixed (active hidden-tool actions and command synchronization for hidden tool output).

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 4: zero findings after the hidden-tool empty-row fix.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 5: zero findings after the final hidden-message container fix.

@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/30018367065

Artifacts expire in 7 days.
Artifacts:

  • pr-614-35a0b9eb3934c0fe3580d96fbc37d41d2f024610-tauri-macos
  • pr-614-35a0b9eb3934c0fe3580d96fbc37d41d2f024610-tauri-windows
  • pr-614-35a0b9eb3934c0fe3580d96fbc37d41d2f024610-tauri-macos-arm64
  • pr-614-35a0b9eb3934c0fe3580d96fbc37d41d2f024610-electron-macos
  • pr-614-35a0b9eb3934c0fe3580d96fbc37d41d2f024610-tauri-linux
  • pr-614-35a0b9eb3934c0fe3580d96fbc37d41d2f024610-electron-linux
  • pr-614-35a0b9eb3934c0fe3580d96fbc37d41d2f024610-electron-windows

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 6 (local follow-up diff, pending commit): 3 deterministic findings identified: provider state/load races when the active instance changes, embedded OAuth work surviving unmount, and the expanded desktop settings navigation being clipped on short viewports. Corrections are in progress.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 7 (local follow-up diff, pending commit): 3 deterministic findings remain after round 6 fixes: same-ID client replacement can let stale provider work win, a pending OAuth authorize call can resume after close/unmount, and the desktop nav parent still prevents short-viewport scrolling. Corrections are in progress.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 8 (local follow-up diff, pending commit): 3 deterministic findings remain: auth method changes are possible during active OAuth, disconnect can supersede OAuth without disposing it, and the scrollable settings nav can clip focus outlines/create horizontal overflow. Corrections are in progress.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 9 (local follow-up diff, pending commit): 5 deterministic findings remain: disconnect failures hide the error and lock all provider cards; Sidecars form/delete controls lack accessible names; the active desktop settings item lacks aria-current; provider async status/error updates are not announced; and Config files has no accessible section heading when the shared mobile heading is hidden. Corrections are in progress.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 10 (local follow-up diff, pending commit): 2 in-scope accessibility findings remain in Providers: focus is not moved to the OAuth code input when that stage appears, and dynamic unsupported/no-prompt messages are not announced. The Sidecars accessibility item from round 9 was pre-existing and out of scope; those Sidecars edits were reverted.

@pascalandr pascalandr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gatekeeper round 11 (local follow-up diff, pending commit): zero findings after independent provider, full-diff, and in-scope accessibility rechecks. Sidecars content is unchanged from 35a0b9e; only its placement in the repartitioned settings navigation remains. Final validation: root typecheck passes, UI production build passes, 144/144 runnable UI tests pass, and git diff --check passes.

@pascalandr

Copy link
Copy Markdown
Contributor Author

Gatekeeper scope clarification: the Provider manager is a shared component used both by the model selector dialog in the left panel and by the new embedded Settings section. Most Provider findings fixed during rounds 6-10 were pre-existing issues in that shared manager (async response/operation invalidation, OAuth cleanup/focus/live announcements, and disconnect failure handling), corrected opportunistically; therefore those fixes apply to both entry points. Settings-specific changes are limited to embedded rendering, its heading/layout, and settings navigation. The pre-existing Sidecars findings were not retained, so Sidecars content remains unchanged.

@pascalandr

Copy link
Copy Markdown
Contributor Author

@shantur LGTM

@pascalandr pascalandr changed the title feat(settings): reorganize preferences by workflow feat(settings): reorganize settings and add chat block visibility Jul 24, 2026
Complete the settings repartition with dedicated OpenCode and Providers sections, and harden the shared provider manager against stale instance and authentication operations.

Add a bounded IndexedDB session-message cache tied to Restore State. Restore recent messages first in pages, preserve scroll position while older history is prepended, and keep HTTP and SSE revisions authoritative over cached data.

Invalidate cache entries on destructive mutations, reject corrupt snapshots, serialize writes, and enforce per-session and global storage budgets. Cover authoritative hydration, prepend ordering, stale request races, and cache selection behavior.

Validated with 383 UI tests, the full UI and Electron typecheck, the production UI build, diff checks, and two independent gatekeeper reviews.
@pascalandr pascalandr changed the title feat(settings): reorganize settings and add chat block visibility feat(ui): reorganize settings and restore session history Jul 26, 2026
Split remote access, OpenCode runtime, providers, SideCars, config files, advanced controls, and information into dedicated navigation sections while preserving the existing settings behavior.

Embed the provider manager directly in Settings and keep stale asynchronous provider and OAuth operations scoped to the current ready instance. Preserve the dialog entry point used by the model selector.

Validated with the UI typecheck and diff checks after separating the unrelated session-cache work into its own branch.
@pascalandr pascalandr changed the title feat(ui): reorganize settings and restore session history feat(settings): reorganize settings and add chat block visibility Jul 26, 2026
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/30210238369

Artifacts expire in 7 days.
Artifacts:

  • pr-614-9b0eabee58e2c9c73f1f7c1c832ab6275f1c88c5-tauri-macos
  • pr-614-9b0eabee58e2c9c73f1f7c1c832ab6275f1c88c5-tauri-windows
  • pr-614-9b0eabee58e2c9c73f1f7c1c832ab6275f1c88c5-electron-macos
  • pr-614-9b0eabee58e2c9c73f1f7c1c832ab6275f1c88c5-tauri-macos-arm64
  • pr-614-9b0eabee58e2c9c73f1f7c1c832ab6275f1c88c5-tauri-linux
  • pr-614-9b0eabee58e2c9c73f1f7c1c832ab6275f1c88c5-electron-linux
  • pr-614-9b0eabee58e2c9c73f1f7c1c832ab6275f1c88c5-electron-windows

1 similar comment
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/30210238369

Artifacts expire in 7 days.
Artifacts:

  • pr-614-9b0eabee58e2c9c73f1f7c1c832ab6275f1c88c5-tauri-macos
  • pr-614-9b0eabee58e2c9c73f1f7c1c832ab6275f1c88c5-tauri-windows
  • pr-614-9b0eabee58e2c9c73f1f7c1c832ab6275f1c88c5-electron-macos
  • pr-614-9b0eabee58e2c9c73f1f7c1c832ab6275f1c88c5-tauri-macos-arm64
  • pr-614-9b0eabee58e2c9c73f1f7c1c832ab6275f1c88c5-tauri-linux
  • pr-614-9b0eabee58e2c9c73f1f7c1c832ab6275f1c88c5-electron-linux
  • pr-614-9b0eabee58e2c9c73f1f7c1c832ab6275f1c88c5-electron-windows

@shantur
shantur merged commit 25af76c into NeuralNomadsAI:dev Jul 26, 2026
17 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

better split and repartition for the settings UI

2 participants